import request from "@/utils/request";

const CREDIT_BASE_URL = "/rest/server/credit";

const CreditAPI = {
  /**
   * 获取积分使用分页列表
   *
   * @param queryParams 查询参数
   */
  getCreditList(queryParams: CreditPageQuery) {
    return request<any, PageResult<CreditUsageVO[]>>({
      url: `${CREDIT_BASE_URL}/list`,
      method: "get",
      params: queryParams,
    });
  },
  /**
   * 获取套餐列表
   *
   * @param queryParams 查询参数
   */
  getPackageList(currency: string) {
    return request<any, PackageInfoVO[]>({
      url: `${CREDIT_BASE_URL}/packageList`,
      method: "get",
      params: {
        currency,
      },
    });
  },
  /**
   * 获取货币列表
   *
   * @param queryParams 查询参数
   */
  getCurrencyList() {
    return request<any, string[]>({
      url: `${CREDIT_BASE_URL}/currencyList`,
      method: "get",
    });
  },
};

export default CreditAPI;

/**
 * 积分分页查询对象
 */
export interface CreditPageQuery extends PageQuery {
  /** 开始时间 */
  createTime?: [string, string];
}

/** 积分使用分页对象 */
export interface CreditUsageVO {
  /** 使用的积分点数 */
  creditsUsed?: number;
  /** 使用时间 */
  usageTime?: Date;
}

/** 套餐对象 */
export interface PackageInfoVO {
  /** 积分/套餐名字 */
  name: string;
  /** 产品价格id */
  id: number;
  /** 产品最大数量 */
  maxQty: number;
}
